//#include <iostream>
//
//using namespace std;
//class A
//{
//public:
//    A(int a)
//    :_a(a)
//    {}
//private:
//    int _a;
//};
//class B
//{
//public:
//    B(int b,int c)
//    :_aobj(1)
//    ,_b(b)
//    ,_c(c)
//    {
//       _x=10;
//    }
//private:
//    A _aobj;
//    int &_b;
//    const int _c;
//    int _x;
//};
//int main()
//{
//    B bb(1,2);
//    return 0;
//}
//#include<iostream>
//using namespace std;
//class date
//{
//public:
//      explicit date(int year=0,int month=2,int h=3)
//    {
//        _year=year;
//        _month=month;
//        _h=h;
//        cout<<"int year=0"<<endl;
//    }
//    date(const date&dd)
//    {
//        _year=dd._year;
//        cout<<"const date&dd"<<endl;
//    }
//private:
//    int _year;
//    int _month;
//    int _h;
//};
//int main()
//{
////    date d1(1);//直接构造
////    const date &d2=1;//直接构造
//    date d3{1,2,3};
//}
//
//
//#include<iostream>
//using namespace std;
////int n=0;//全局变量
//class A
//{
//public:
//    A()//构造函数
//    {
//        n++;
//    }
//    A(const A& a)//拷贝构造
//    {
//        n++;
//    }
//    static int getn()//不能用this指针
//    {
//        return n;
//    }
//private:
//    static int n;//声明
//};
//int A::n=0;//定义
//A f1(A a)
//{
//    return a;
//}
//int main()
//{
//    A a1;
//    A a2;
//    f1(a1);
//    f1(a2);
//
//    cout<<a1.getn()<<endl;
//    cout<<a2.getn()<<endl;
//    cout<<A::getn()<<endl;
//    return 0;
//}
//class A
//{
//    friend void hjx(A&a);
//public:
//    A(int year=1)
//    {
//        _year=year;
//    }
//    void print()
//    {
//        cout<<_year<<endl;
//    }
//private:
//    int _year;
//};
//void hjx(A& a)
//{
//    a._year=90;
//    cout<<a._year<<endl;
//}
//int main()
//{
//
//    A a;
//    hjx(a);
//    A b;
//    b.print();
//    return 0;
//}
//class date
//{
//    friend ostream& operator<<(ostream&out,const date&dd);
//    friend istream& operator>>(istream&in, date &dd);
//public:
//    date(const date&dd)
//    {
//        _year=dd._year;
//        _month=dd._month;
//        _day=dd._day;
//    }
//    date(int year=0,int month=0,int day=0)
//    {
//        _year=year;
//        _month=month;
//        _day=day;
//    }
////    void operator<<(ostream&out)
////    {
////        out<<_year<<" "<<_month<<" "<<_day<<" "<<endl;
////    }
//private:
//    int _year;
//    int _month;
//    int _day;
//
//};
//ostream& operator<<(ostream&out,const date&dd)
//{
//    out<<dd._year<<" "<<dd._month<<" "<<dd._day<<endl;
//    return out;
//}
//istream& operator>>(istream&in, date &dd)
//{
//    in>>dd._year>>dd._month>>dd._day;
//    return in;
//}
//int main()
//{
//    date d1(2023,8,2);
////    d1<<cout;
////    d1.operator<<(cout);
//    date d2(2023,8,3);
//      cout<<d1<<d2;
//      cin>>d1>>d2;
//      cout<<d1<<d2;
////      operator<<(cout,d1);
//}
//typedef struct hjx_c
//{
//    int date;
//    struct hjx_c*pre;
//    struct hjx_c*next;
//}hjx_c;
//hjx_c* chushihua(int date)
//{
//    hjx_c*newp=(hjx_c*)malloc(sizeof(hjx_c));
//    newp->date=date;
//    newp->pre=NULL;
//    newp->next=NULL;
//}
//struct hjx_cpp
//{
//
//    int _date;
//    hjx_cpp*pre;//类
//    hjx_cpp*next;
//
//};
//int main()
//{
////    hjx_c*h1=chushihua(1);
////    hjx_c*h2=chushihua(2);
////    hjx_cpp*h3=new hjx_cpp;
////    hjx_cpp*h4=new hjx_cpp;
////    delete h3;
////    delete h4;
////    hjx_cpp hu[10];
//    hjx_cpp *hhu=new hjx_cpp[10];
//    delete []hhu;
//    size_t sz=20;
//    try
//    {
//        void *p5=operator new(sizeof(sz*1024*1024*1024*1024*1024*1024*1024*1024*1024*1024*1024));
//        cout<<p5<<endl;
//    }
//    catch(exception&e)
//    {
//        cout<<e.what()<<endl;
//    }
//    return 0;
//}
//

//struct hjx
//{
//   hjx* _pre;
//   hjx* _next;
//   int _val;
////   void* operator new(size_t n)
////   {
////       void *p=nullptr;
////       p=allocator<hjx>().allocate(1);//内存池
////       cout<<"申请内存池"<<endl;
////       return p;
////   }
//void *operator new(size_t n)
//{
//    void *p=nullptr;
//    p=allocator<hjx>().allocate(1);
//    cout<<"申请内存池"<<endl;
//    return p;
//}
////   void operator delete(void *p)
////   {
////       allocator<hjx>().deallocate((hjx*)p,(1));
////       cout<<"销毁内存池"<<endl;
////   }
//void operator delete(void *p)
//{
//    allocator<hjx>().deallocate((hjx*)p,(1));
//    cout<<"销毁内存池"<<endl;
//}
//
//};
//class List
//{
//public:
//    List()
//    {
//        _hh=new hjx;
//        _hh->_next=_hh;
//        _hh->_pre=_hh;
//    }
//    ~List()
//    {
//        hjx*cur=_hh->_next;
//        while(cur!=_hh)
//        {
//            hjx*next=cur->_next;
//            delete cur;
//            cur=next;
//        }
//        delete _hh;
//        _hh=nullptr;
//    }
//private:
//    hjx*_hh;
//};
//int main()
//{
//   List l;
//}
//template<typename S>
//void Swap(S&left,S&right)
//{
//    S x=left;
//    left=right;
//    right=x;
//}
//int main()
//{
//   int a=2;
//   int b=3;
//   Swap(a,b);
//   cout<<a<<b;
//}
//class A
//{
//public:
//    A()
//    {
//        cout<<"构造函数"<<endl;
//
//    }
//    ~A()
//    {
//        cout<<"析构函数"<<endl;
//    }
//private:
//
//};
//int main()
//{
////    A*a1=new A;
//
//    A*a2=(A*)operator new(sizeof(A));
//    new(a2) A;
//
//    //delete a1;
//    a2->~A();
//    operator delete(a2);
//
//}
//template<class T>
//T add(const T&left,const T&right)
//{
//    return left+right;
//}
//int main()
//{
//    int a1=1,a2=2;
//    double a3=2.3,a4=9.8;
//    cout<<add(a1,a2)<<endl;
//    cout<<add(a3,a4)<<endl;
////    add<int>(a1,a3);
////    add(a1,(int)a3);
//}
//#include<iostream>
//#include<string>
//#include<vector>
//using namespace std;
//int main()
//{
////        string s1;
////        string s2("hello");//直接赋值
////        string s3(s2);//拷贝构造
////        string s4="hello";//先产生临时变量string类型的，再拷贝构造，编译器直接优化成直接赋值
////        string s5=s2;//拷贝构造
////        string s6(10,'a');//赋值10个a
////        string s7("hello",3);//赋值从前往后3个字符
////        string s8(s2,1,3);//从第一个位置往后拷贝构造3个字符
////        string s9(s2,1,10);//从第一个位置往后拷贝10个字符，但是10超过了长度所以是所有直接拷贝构造
////        string s10(s2,1,string::npos);//str：：npos表示size_t=-1,无符号表示unsign int最大值
////        string s11(s2,1);//第三个位置没有赋值就是缺省str::npos
////        s1=s6;
////        cout<<s1<<endl;
////        cout<<s2<<endl;
////        cout<<s3<<endl;
////        cout<<s4<<endl;
////        cout<<s5<<endl;
////        cout<<s6<<endl;
////        cout<<s7<<endl;
////        cout<<s8<<endl;
////        cout<<s9<<endl;
////        cout<<s10<<endl;
////        cout<<s11<<endl;
////          string s1("hjx");
////          s1+=' ';
////          s1+="yyds";
////          string s2("hjx");
////          s1+=' ';
////          s1+=s2;
////          cout<<s1<<endl;
////          //遍历
////
////          for(auto e:s1)//范围for
////          {
////              cout<<e;
////          }//只读
////          cout<<endl;
////           //写
////           size_t i=0;
////           for(i=0;i<s1.size();i++)
////           {
////               s1[i]=s1[i]+1;
////           }
////           //读
////           for(i=0;i<s1.size();i++)
////           {
////               cout<<s1[i]<<' ';
////           }
////           cout<<endl;
////           //迭代器
////           //写
////           string::iterator it=s1.begin();
////           while(it!=s1.end())
////           {
////               *it=*it-1;
////               it++;
////           }
////           it=s1.begin();
////           while(it!=s1.end())
////           {
////               cout<<*it<<' ';
////               it++;
////           }
////           cout<<endl;
//           //迭代器访问
////           vector<int> v1;
////           v1.push_back(1);
////           v1.push_back(2);
////           v1.push_back(3);
////           vector<int> ::iterator it=v1.begin();
////           //写
////           while(it!=v1.end())
////           {
////               *it+=1;
////               it++;
////           }
////           //读
////           it=v1.begin();
////           while(it!=v1.end())
////           {
////               cout<<*it;
////               it++;
////           }
////迭代器逆遍历
////         string s1("hello hjx");
////         string ::iterator it=s1.end();
////         while(it!=s1.begin())
////         {
////             --it;
////             cout<<*it;
////         }
////string::reverse_iterator rit=s1.rbegin();
////while(rit!=s1.rend())
////{
////    cout<<*rit;
////    rit++;
////}
//}
#include<iostream>
#include<string>
using namespace std;
//int hjx(const string& ss)
//{
//    int val=0;
//    string::const_iterator it=ss.begin();
//    while(it!=ss.end())
//    {
//        val=val*10;
//        val=val+((*it)-'0');
//        ++it;
//    }
//    return val;
//}
//int hjx_ni(const string&ss)
//{
//    int val=0;
//    string::const_reverse_iterator rit=ss.rbegin();
//    while(rit!=ss.rend())
//    {
//        val*=10;
//        val+=((*rit)-'0');
//        ++rit;
//    }
//    return val;
//}
//void hjx()
//{
//    string s1("hello");
//    string s2("hello word");
//    cout<<s1.capacity()<<endl;
//    cout<<s2.capacity()<<endl;
//    s1.clear();
//    cout<<s1;
//    cout<<s1.empty();
//}
//int main()
//{
//    hjx();
//}
//增容问题
//void hjx()
//{
//    string s;
////    s.reserve(100);
//    s.resize(100);
//    int sz=s.capacity();
//    int i=0;
//    for(i=0;i<100;i++)
//    {
//        s+='c';
//        if(sz!=s.capacity())
//        {
//            sz=s.capacity();
//            cout<<"增容成功"<<sz<<endl;
//        }
//    }
//}
//int main()
//{
//    hjx();
//}
//void hjx()
//{
//    string s("123456");
//    s.insert(s.begin(),'0');
//    cout<<s<<endl;
//    s.insert(2,"hjx");
//    cout<<s<<endl;
//    s.erase(2,3);
//    cout<<s<<endl;
//    s.erase(2.199);
//    cout<<s<<endl;
//}
//int main()
//{
//    hjx();
//}
//void hjx(const string &s1)
//{
//            size_t pos=s1.find('/');
//        if(pos!=string::npos)
//        {
//           cout<<s1.substr(0,pos-1)<<endl;
//        }
//        size_t pos1=s1.find('/',pos+2);
//        if(pos1!=string::npos)
//        {
//            cout<<(s1.substr(pos+2,pos1-(pos+2)))<<endl;
//        }
//        cout<<s1.substr(pos1+1)<<endl;
//}
int main()
{
//    string s1("hjxyyds");
//    const char *str=s1.c_str();
//    while(*str)
//    {
//        cout<<*str<<" ";
//        str++;
//    }
//    cout<<endl;
//    s1+='\0';
//    s1+="word";
//    cout<<s1<<endl;
//    cout<<s1.c_str()<<endl;
//      string s1("hjx.cpp.zip");
//      string s2("hjx.zip");
//      size_t pos=s1.rfind('.');
//      cout<<s1.substr(pos)<<endl;
//      size_t pos1=s2.find('.');
//      cout<<s2.substr(pos1)<<endl;
//        string s1("https://www.csdn.net/?spm=1001.2101.3001.4476");
//        hjx(s1);
        cout<<("abcd"<"bbcd")<<endl;
        char a=cin.get();
        char b=cin.get();
        cout<<a;
}


























































